package cn.com.huak.www.sell.service;

import cn.com.huak.www.sell.dataObject.ProductInfo;
import cn.com.huak.www.sell.dto.CartDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * @author huak@wanggang
 * @date 2018/12/26 0:01
 */
public interface ProductInfoService {

    /**
     * 查找单个
     * @param id
     * @return
     */
    ProductInfo findOne(String id);

    /**
     * 查询上架的商品
     * @return
     */
    List<ProductInfo> findUpAll();

    /**
     * 查询所有
     * @return
     */
    Page<ProductInfo> findAll(Pageable pageable);

    /**
     * 添加商品
     * @param productInfo
     * @return
     */
    ProductInfo save(ProductInfo productInfo);

    /*
    * 扣库存
    * */
    void decreaseStock(List<CartDTO> cartDTOS);

    /*
    * 加库存
    * */
    void increaseStock(List<CartDTO> cartDTOS);

    /**
     * 上架
     * @param productId
     */
    ProductInfo onSale(String productId);

    /**
     * 下架
     * @param productId
     */
    ProductInfo offSale(String productId);
}
